#include<iostream>
#include<cstring>
#include<stdio.h>

using namespace std;

int main()
{
    //char s[30]; //这种在输入中也是不安全的
    string s;
    cin>>s; // string类型的输入只能由cin完成
    //scanf("%s",s); // 这种用法是不安全的用户输入超出字符数组长度后，程序崩溃
    //cin>>s; // 这种用法是不安全的，用户输入超出字符数组长度后，程序崩溃
    //fscanf(stdin, "%s", 30);
    //fgets(s, 30, stdin); 这种用法可以实现一定的安全，从键盘中最多读取29个，字符串的最后一位一定是\0如果第二参数传入一个比30大的数字，这里依旧不安全
    cout<<"s="<<s<<endl; // 先把“s=”流到cout中，然后再将s流入到cout中，最后再将endl流入到cout中
    /**
     * 与
     * cout<<"s=";
     * cout<<s;
     * cout<<endl;
     * 是等效的
     * **/
    cout<<s.max_size()<<endl;
    return 0;
}